热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

大数据开发|Hadoop分布式集群环境构建

一直想编写一系列有关大数据开发、数据挖掘、云计算等相关课程的学习资料,为零基础又想从事大数据行业的小伙伴提供一些参考。今天第一篇《Hadoop分布式集群环境构建&#x

一直想编写一系列有关大数据开发、数据挖掘、云计算等相关课程的学习资料,为零基础又想从事大数据行业的小伙伴提供一些参考。今天第一篇《Hadoop分布式集群环境构建(1)》终于和大家见面了。

集群主机规划

软件安装包准备

会将软件所有安装包放入百度云盘,以供大家方便下载。链接:http://pan.baidu.com/s/1i5CdjI9 密码:f7rn

安装环境准备

3.1

创建用户

      为每台机子创建一个不是root的用户,该集群是以hadoop来创建的。并且每台机子的用户以及密码都要相同。

操作命令:

每台服务器用root账户下:

useradd hadoop

echo "hadoop" | passwd --stdin  Hadoop

3.2

配置hosts文件以及network

集群中的所有机器的 /etc/hosts 文件内容均一致,都要将集群中的各 IP 和 主机名对应起来,而且都能互相ping通。如下:

修改集群所有机子的/etc/sysconfig/network文件,HOSTNAME要改成对应的主机名。如下:

安装jdk

首先解压该安装包:

tar -xvzf jdk-7u67-linux-x64.tar.gz  -C  /

对解压的安装包重新命名

mv jdk1.7.0_67 jdk

将jdk文件复制到/home/hadoop/目录下并赋予相应权限

cp  /jdk  /home/hadoop/

chown   -R  hadoop:hadoop /home/hadoop/jdk

配置jdk的环境变量:

vi /etc/profile

使以上配置环境变量生效:

Source  /etc/profile

以上步骤其余机子都需要操作一遍

ssh免密码通信

通过云盘中提供的一个脚本文件来实现,名称是zeno_ssh_update.sh。

首先需要创建一个目录:/home/zeno_programpag

然后将下载的脚本文件放入到这个目录下。

加入如下内容:

执行脚本文件(root用户下执行)

./zeno_ssh_update.sh hadoop hadoop

脚本后面跟的是用户名及用户密码

检查SSH免密码登录是否完成。

想系统学习大数据的话,可以加入大数据技术学习扣扣君羊:522189307

安装zookeeper

6.1

解压zookeeper

将该安装包解压到/home/hadoop/下

tar  -zxvf zookeeper-3.4.5-cdh5.4.0.tar.gz –C /home/hadoop/

6.2

修改配置文件

在/home/hadoop/zookeeper/conf目录下,复制一各名为zoo.cfg的文件

cp  zoo_sample.cfg  zoo.cfg

修改zoo.cfg中的文件内容

加入如下标注的内容

创建/tmp/zookeeper/目录,并赋予hadoop的所有组及所有者权限

mkdir  -p /tmp/zookeeper/

并创建myid文件,加入zoo.cfg中对应的数

将/home/Hadoop/zookeeper 复制到其他机子。

scp  -r /home/Hadoop/zookeeper/  hadoop@hadoop3:/home/hadoop/

scp  -r /home/Hadoop/zookeeper/  hadoop@hadoop5:/home/hadoop/

注意每台机子都需要创建myid这个文件,并修改对应的数字。

6.3

启动zookeeper服务(三台机子)

/home/hadoop/zookeeper/sbin/ zkServer.sh  start

6.4

查看zookeeper服务状态

出现以下的状态就说明zookeeper成功了

安装hadoop集群

7.1

解压hadoop安装包

tar  -zxvf hadoop-2.6.0-cdh5.4.0.tar.gz –C /home/hadoop/

chown -R hadoop:hadoop /home/hadoop/hadoop

7.2

修改配置文件

01

hadoop-env.sh文件

向其中添加如下两行:

export JAVA_HOME=/home/hadoop/jdk
export HADOOP_HOME=/home/hadoop/Hadoop

02

配置core-site.xml

#vi  core-site.xml 
 
 
 
     
       
        fs.defaultFS 
        hdfs://mycluster 
   
 
     
       
        hadoop.tmp.dir 
        /home/hadoop/hadoop/data/hadoop/tmp 
   
 

  dfs.journalnode.edits.dir

  /path/to/journal/node/local/data


     
       
        ha.zookeeper.quorum 
  hadoop5:2181,hadoop4:2181,hadoop3:2181 
   
 

需要手动创建:/home/hadoop/hadoop/data/hadoop/tmp目录

mkdir –p /home/hadoop/hadoop/data/hadoop/tmp

03

配置hdfs-site.xml

#vi hdfs-site.xml 

        

        dfs.journalnode.edits.dir

        /home/hadoop/hadoop/ha/journal

        dfs.permissions

        false

    

    

                dfs.permissions.enabled

        false

    

       

        dfs.replication

        3

    

        

        dfs.webhdfs.enabled

        true

    

dfs.namenode.name.dir

/home/hadoop/hadoop/dfs/name

dfs.datanode.data.dir

/home/hadoop/hadoop/dfs/data

  dfs.nameservices

  mycluster

  dfs.ha.namenodes.mycluster

  nn1,nn2

  dfs.namenode.rpc-address.mycluster.nn1

  hadoop3:8020

  dfs.namenode.rpc-address.mycluster.nn2

  hadoop4:8020

  dfs.namenode.http-address.mycluster.nn1

  hadoop3:50070

  dfs.namenode.http-address.mycluster.nn2

  hadoop4:50070

  dfs.namenode.shared.edits.dir

  qjournal://hadoop5:8485;hadoop4:8485;hadoop3:8485/mycluster

   dfs.ha.automatic-failover.enabled

   true

 

  dfs.client.failover.proxy.provider.mycluster

  org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider

  dfs.ha.fencing.methods

  

    sshfence

    

  

 

  dfs.ha.fencing.ssh.private-key-files

  /home/hadoop/.ssh/id_rsa

  dfs.ha.fencing.ssh.connect-timeout

  30000

04

配置mapred-env.sh

加入

export JAVA_HOME=/home/hadoop/jdk

05

配置mapred-site.xml

    mapreduce.framework.name

    yarn

06

配置yarn-env.sh

export JAVA_HOME=/home/hadoop/jdk

07

配置yarn-site.xml

# vi  yarn-site.xml

   yarn.resourcemanager.ha.enabled

   true

 

 

   yarn.resourcemanager.cluster-id

   cluster1

 

 

   yarn.resourcemanager.ha.rm-ids

   rm1,rm2

 

 

   yarn.resourcemanager.hostname.rm1

   hadoop3

 

 

   yarn.resourcemanager.hostname.rm2

   hadoop4

 

 

   yarn.resourcemanager.zk-address

   hadoop5:2181,hadoop4:2181,hadoop3:2181

 

  

   yarn.nodemanager.aux-services

   mapreduce_shuffle

  

08

配置slaves

以上hadoop的配置就算完成了。

将/home/Hadoop/Hadoop/ 拷贝到其他机子上

scp –r /home/Hadoop/Hadoop/  hadoop@hadoop3:/home/Hadoop/

scp –r /home/Hadoop/Hadoop/  hadoop@hadoop5:/home/Hadoop/

启动集群

8.1

格式换命名空间(hadoop4)

/home/hadoop/hadoop/bin/hdfs zkfc -formatZK

8.2

启动journalnode(三台)

/home/hadoop/hadoop /sbin/hadoop-daemon.sh start journalnode

通过jps查看一下出现journalnode说明成功

8.3

格式化master节点并启动hadoop服务

/home/hadoop/hadoop/bin/hadoop namenode -format mycluster

启动hadoop服务

/home/hadoop/hadoop /sbin/hadoop-daemon.sh start namenode

将hadoop4这台机子格式化的文件拷贝到hadoop3上

格式化后的文件是放在/home/hadoop/hadoop/dfs/name这个目录下的。

scp /home/hadoop/hadoop/dfs/name hadoop@hadoop3:/home/hadoop/hadoop/dfs/name/

在hadoop3上启动hadoop服务

/home/hadoop/hadoop /sbin/hadoop-daemon.sh start namenode

8.4

hadoop4和hadoop3节点上启动zkfs

/home/hadoop/hadoop /sbin/hadoop-daemon.sh start zkfc

8.5

启动DataNode(三台)

/home/hadoop/hadoop /sbin/hadoop-daemon.sh start datanode

8.6

启动yarn(一台master)

/home/hadoop/hadoop /sbin/start-yarn.sh

Ok,所有的进程都已启动完成了。

网页通过端口访问hadoop:http://192.168.211.88:50070/

以下的效果说明已经完全构建了一个HA高可用的hadoop大数据集群环境。

集群环境mapreduce测试:

执行hadoop自带的mapreduce是否能够成功?

/home/hadoop/hadoop/bin/hadoop jar hadoop-mapreduce-examples-2.6.0-cdh5.4.0.jar wordcount /wangyd/  /output/wordcount1

发现mapreduce执行也是没有问题了,说明整个集群搭建ok了。


推荐阅读
  • ZooKeeper 学习
    前言相信大家对ZooKeeper应该不算陌生。但是你真的了解ZooKeeper是个什么东西吗?如果别人面试官让你给他讲讲ZooKeeper是个什么东西, ... [详细]
  • 本文总结了初学者在使用dubbo设计架构过程中遇到的问题,并提供了相应的解决方法。问题包括传输字节流限制、分布式事务、序列化、多点部署、zk端口冲突、服务失败请求3次机制以及启动时检查。通过解决这些问题,初学者能够更好地理解和应用dubbo设计架构。 ... [详细]
  • Hadoop源码解析1Hadoop工程包架构解析
    1 Hadoop中各工程包依赖简述   Google的核心竞争技术是它的计算平台。Google的大牛们用了下面5篇文章,介绍了它们的计算设施。   GoogleCluster:ht ... [详细]
  • LVS-DR直接路由实现负载均衡示例
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 【转】腾讯分析系统架构解析
    TA(TencentAnalytics,腾讯分析)是一款面向第三方站长的免费网站分析系统,在数据稳定性、及时性方面广受站长好评,其秒级的实时数据更新频率也获得业界的认可。本文将从实 ... [详细]
  • CentOS 7配置SSH远程访问及控制
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 前言折腾了一段时间hadoop的部署管理,写下此系列博客记录一下。为了避免各位做部署这种重复性的劳动,我已经把部署的步骤写成脚本,各位只需要按着本文把脚本执行完,整个环境基本就部署 ... [详细]
  • 我们在之前的文章中已经初步介绍了Cloudera。hadoop基础----hadoop实战(零)-----hadoop的平台版本选择从版本选择这篇文章中我们了解到除了hadoop官方版本外很多 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
  • 解决Sharepoint 2013运行状况分析出现的“一个或多个服务器未响应”问题的方法
    本文介绍了解决Sharepoint 2013运行状况分析中出现的“一个或多个服务器未响应”问题的方法。对于有高要求的客户来说,系统检测问题的存在是不可接受的。文章详细描述了解决该问题的步骤,包括删除服务器、处理分布式缓存留下的记录以及使用代码等方法。同时还提供了相关关键词和错误提示信息,以帮助读者更好地理解和解决该问题。 ... [详细]
  • Sleuth+zipkin链路追踪SpringCloud微服务的解决方案
    在庞大的微服务群中,随着业务扩展,微服务个数增多,系统调用链路复杂化。Sleuth+zipkin是解决SpringCloud微服务定位和追踪的方案。通过TraceId将不同服务调用的日志串联起来,实现请求链路跟踪。通过Feign调用和Request传递TraceId,将整个调用链路的服务日志归组合并,提供定位和追踪的功能。 ... [详细]
  • 如何使用PLEX播放组播、抓取信号源以及设置路由器
    本文介绍了如何使用PLEX播放组播、抓取信号源以及设置路由器。通过使用xTeve软件和M3U源,用户可以在PLEX上实现直播功能,并且可以自动匹配EPG信息和定时录制节目。同时,本文还提供了从华为itv盒子提取组播地址的方法以及如何在ASUS固件路由器上设置IPTV。在使用PLEX之前,建议先使用VLC测试是否可以正常播放UDPXY转发的iptv流。最后,本文还介绍了docker版xTeve的设置方法。 ... [详细]
  • 什么是大数据lambda架构
    一、什么是Lambda架构Lambda架构由Storm的作者[NathanMarz]提出,根据维基百科的定义,Lambda架构的设计是为了在处理大规模数 ... [详细]
  • Kylin 单节点安装
    软件环境Hadoop:2.7,3.1(sincev2.5)Hive:0.13-1.2.1HBase:1.1,2.0(sincev2.5)Spark(optional)2.3.0K ... [详细]
author-avatar
mobiledu2502898543
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有